package ast


func (StringLiteral) impl(Term) {}
type StringLiteral struct {
	Node                          `part:"string"`
	First  Text                   `part:"text"`
	Parts  [] VariousStringPart   `list:"string_part*"`
}
type VariousStringPart struct {
	Node                         `part:"string_part"`
	Content  StringPartContent   `part:"string_part_content"`
}
type StringPartContent struct {
	Node               `part:"string_part_content"`
	Part  StringPart   `use:"first"`
}
type StringPart interface { implStringPart() }
func (Text) implStringPart() {}
type Text struct {
	Node             `part:"text"`
	Value  [] rune   `content:"Text"`
}

func (CharLiteral) impl(Term) {}
func (CharLiteral) implStringPart() {}
type CharLiteral struct {
	Node             `part:"char"`
	Value  [] rune   `content:"Char"`
}

func (IntegerLiteral) impl(Term) {}
type IntegerLiteral struct {
	Node             `part:"int"`
	Value  [] rune   `content:"Int"`
}

func (FloatLiteral) impl(Term) {}
type FloatLiteral struct {
	Node             `part:"float"`
	Value  [] rune   `content:"Float"`
}


